home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib13.dsk / APPLE INTERVAL TIMER.bas next >
BASIC Source File  |  2023-02-26  |  4KB  |  94 lines

  1. 50  REM  ************************
  2. 52  REM  * APPLE INTERVAL TIMER *
  3. 54  REM  *   BY  C.J.THOMPSON   *
  4. 56  REM  *  COPYRIGHT (C) 1980  *
  5. 58  REM  * BY MICRO-SPARC, INC. *
  6. 60  REM  * LINCOLN, MA.   01773 *
  7. 62  REM  ************************
  8. 140  REM  THIS PROGRAM PROVIDES
  9. 160  REM  ANALOG AND DIGITAL
  10. 180  REM  COUNTDOWN OF AN ARBI-
  11. 200  REM  TRARY SERIES OF TIME
  12. 220  REM  INTERVALS. USEFUL FOR
  13. 240  REM  PROCESSING PHOTOGRAPHIC
  14. 260  REM  NEGATIVES, PRINTS AND
  15. 280  REM  BOILED EGGS !!!
  16. 300  REM  INITIALIZE VARIABLES
  17. 320 A = 2: REM  MINUTE HAND IS GREEN
  18. 340 B = 5: REM  SECOND HAND IS RED
  19. 360 TC = 200: REM  TIMING CORRECTION (LARGER=SLOWER)
  20. 380  DIM TI(25),TS(25): REM  MAX NUMBER OF INTERVALS IS 25
  21. 400 K = 3: REM  NUMBER OF ALARM BUZZES
  22. 420 TA = 25: REM  LENGTH OF EACH BUZZ
  23. 480  GOTO 1000: REM  JUMP OVER SUBROUTINES
  24. 500  REM  TIMER SUBROUTINE
  25. 510  GOSUB 640
  26. 520  FOR TI = TS TO 0  STEP  -1
  27. 530 H = 22: REM  DIGITAL READOUT NOMINAL TAB
  28. 540  IF TI < = 99  THEN H = H +1
  29. 550  IF TI = 99  THEN  GOSUB 640
  30. 560  IF TI < = 9  THEN H = H +2
  31. 570  IF TI = 9  THEN  GOSUB 640
  32. 580  VTAB 22: HTAB H: GOSUB 740: GOSUB 890
  33. 590  PRINT TI;" SECONDS TO GO"
  34. 600  REM  TIMING CORRECTION
  35. 610  FOR N = 1 TO TC: NEXT N
  36. 620  NEXT TI
  37. 630  RETURN 
  38. 640  HOME : VTAB 22: PRINT "STEP ";ST;": ";T;" MIN.": RETURN 
  39. 650  REM  ALARM CONTROL
  40. 660  FOR N = 1 TO K
  41. 670  FOR J = 1 TO TA
  42. 680  GOSUB 720
  43. 690  NEXT J
  44. 700  FOR L = 1 TO 100: NEXT L: REM  PAUSE
  45. 710  NEXT N: RETURN 
  46. 720 S =  -16336:X =  PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S) - PEEK(S): RETURN 
  47. 730  HOME : VTAB 22: RETURN 
  48. 740  REM  CLOCK GRAPHICS
  49. 750  HGR :MN =  INT(TI/60):TH = TI
  50. 760 TH = TH -60: IF TH >60 GOTO 760
  51. 770 SC = TH
  52. 780 X = 139:Y = 79:R = 60:RS = 75
  53. 790 AM = MN *.5236
  54. 800 AS = SC *.1047
  55. 810 XM = R * SIN(AM)
  56. 820 YM = R * COS(AM)
  57. 830 XS = RS * SIN(AS)
  58. 840 YS = RS * COS(AS)
  59. 850  HCOLOR= A: HPLOT X,Y TO X +XM,Y -YM
  60. 860  HCOLOR= B: HPLOT X,Y TO X +XS,Y -YS
  61. 870  RETURN 
  62. 880  REM  SECOND TICKING
  63. 890 S =  -16336:X =  PEEK(S) - PEEK(S) - PEEK(S): RETURN 
  64. 900  REM  EXIT UNTIL AGAIN
  65. 910  TEXT : HOME : VTAB 10: HTAB 5: PRINT "TILL NEXT 'TIME' -------- ": VTAB 22: END 
  66. 920  REM  END SUBROUTINES
  67. 1000  REM  MAIN PROGRAM
  68. 1020  TEXT : CALL  -936
  69. 1040  HTAB 5: PRINT "***** APPLE INTERVAL TIMER *****"
  70. 1060  POKE 34,2: VTAB 10
  71. 1080  PRINT "THIS PROGRAM WILL COUNT DOWN UP TO 25                                           PRESET TIME INTERVALS. ENTER THE NUMBER                                         OF INTERVALS IN THIS SET .. ";: INPUT NI%
  72. 1100  HOME : VTAB 5: PRINT "NOW ENTER THE LENGTH OF EACH INTERVAL INDECIMAL MINUTES (EX.  3.25)"
  73. 1120  VTAB 8
  74. 1140  FOR I = 1 TO NI%: PRINT "INTERVAL ";I;" : ";: INPUT TI(I)
  75. 1160 TS(I) =  INT(TI(I) *60): NEXT : REM  ROUND TO NEAREST SECOND
  76. 1180  VTAB 20: PRINT "*** ENTRIES CORRECT  Y";: HTAB 21: INPUT A$: IF  LEN(A$) = 0  THEN A$ = "Y"
  77. 1200  IF  LEFT$(A$,1) < >"Y"  THEN 1000
  78. 1220  HOME 
  79. 1240  VTAB 15: PRINT "TO START TIMING THE FIRST STEP, PRESS   THE RETURN KEY. ";: GET A$
  80. 1260  FOR ST = 1 TO NI%:T = ( INT(TI(ST) *100 +.5))/100:TS = TS(ST)
  81. 1280  GOSUB 500: GOSUB 650: GOSUB 730
  82. 1300  IF ST = NI%  THEN  GOTO 1360
  83. 1320  VTAB 22: PRINT "TO START TIMING THE NEXT INTERVAL, PRESSTHE RETURN KEY .";: GET A$
  84. 1340  NEXT 
  85. 1360  TEXT : HOME : VTAB 5: PRINT "*** SELECT APPROPRIATE NUMBER: "
  86. 1380  VTAB 7: HTAB 5: PRINT "(1) RECYCLE TIMER"
  87. 1400  VTAB 8: HTAB 5: PRINT "(2) SELECT NEW TIMER PARAMETERS"
  88. 1420  VTAB 9: HTAB 5: PRINT "(3) QUIT "
  89. 1440  VTAB 11: HTAB 10: PRINT "SELECTION  1";: HTAB 20: INPUT A$
  90. 1460  IF  LEN(A$) = 0  THEN SE% = 1: GOTO 1520
  91. 1480  IF  VAL(A$) <1  OR  VAL(A$) >3  THEN 1360
  92. 1500 SE% =  VAL(A$)
  93. 1520  ON SE% GOTO 1240,1000,910
  94. 1540  REM  BOTTOM OF PROGRAM